package com.xxxx.server.pojo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * <p>
 *
 * </p>
 *
 * @author liu-cehang
 * @since 2020-10-20
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_employee")
@ApiModel(value="Employee对象", description="")
public class Employee implements Serializable {

    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "员工编号")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @Excel(name = "员工姓名", width = 10,isImportField = "true_st")
    @ApiModelProperty(value = "员工姓名")
    private String name;

    @Excel(name = "性别", width = 5, isImportField = "true_st")
    @ApiModelProperty(value = "性别")
    private String gender;

    @Excel(name = "出生日期", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd", isImportField = "true_st", width = 20)
    @ApiModelProperty(value = "出生日期")
    private LocalDate birthday;

    @Excel(name = "身份证号", width = 30, isImportField = "true_st")
    @ApiModelProperty(value = "身份证号")
    private String idCard;

    @Excel(name = "婚姻状况", width = 10, isImportField = "true_st")
    @ApiModelProperty(value = "婚姻状况")
    private String wedlock;

    @Excel(name = "民族", replace = {
            "汉族_1", "蒙古族_2","回族_3","藏族_4", "维吾尔族_5","苗族_6",
            "彝族_7", "壮族_8","布依族_9","朝鲜族_10", "满族_11","侗族_12",
            "瑶族_13", "白族_14","土家族_15","哈尼族_16", "哈萨克族_17","傣族_18",
            "黎族_19", "傈僳族_20","佤族_21","畲族_22", "高山族_23","拉祜族_24",
            "水族_25", "东乡族_26","纳西族_27","景颇族_28", "柯尔克孜族_29","土族_30",
            "达斡尔族_31", "仫佬族_32","羌族_33","布朗族_34", "撒拉族_35","毛难族_36",
            "仡佬族_37", "锡伯族_38","阿昌族_39","普米族_40", "塔吉克族_41","怒族_42",
            "乌孜别克族_43", "俄罗斯族_44","鄂温克族_45","崩龙族_46", "保安族_47","裕固族_48",
            "京族_49", "塔塔尔族_50","独龙族_51", "鄂伦春族_52","赫哲族_53","门巴族_54",
            "珞巴族_55", "基诺族_56"
    },width = 15,  isImportField = "true_st")
    @ApiModelProperty(value = "民族")
    private Integer nationId;

    @Excel(name = "籍贯", width = 10, isImportField = "true_st")
    @ApiModelProperty(value = "籍贯")
    private String nativePlace;

    @Excel(name = "政治面貌",replace = {
            "中共党员_1", "中共预备党员_2","共青团员_3","民革党员_4","民盟盟员_5","民建会员_6",
            "民进会员_7","农工党党员_8","致公党党员_9","九三学社社员_10","台盟盟员_11","无党派民主人士_12","普通公民_13"
    },width = 15, isImportField = "true_st")
    @ApiModelProperty(value = "政治面貌")
    private Integer politicId;

    @Excel(name = "邮箱", width = 30, isImportField = "true_st")
    @ApiModelProperty(value = "邮箱")
    private String email;

    @Excel(name = "电话号码", width = 20, isImportField = "true_st")
    @ApiModelProperty(value = "电话号码")
    private String phone;

    @Excel(name = "联系地址", width = 50, isImportField = "true_st")
    @ApiModelProperty(value = "联系地址")
    private String address;

    @Excel(name = "所属部门",replace = {
            "股东会_1", "董事会_2","总办_3","财务部_4","市场部_5","华东市场部_6",
            "华南市场部_7","上海市场部_8","西北市场部_9","贵阳市场_10","乌当区市场_11","技术部_12","运维部_13"
    }, width = 15, isImportField = "true_st")
    @ApiModelProperty(value = "所属部门")
    private Integer departmentId;

    @Excel(name = "职称",replace = {
            "教授_1", "副教授_2","助教_3","讲师_4","初级工程师_5","中级工程师_6",
            "高级工程师_7","骨灰级工程师_8"
    },width = 15, isImportField = "true_st")
    @ApiModelProperty(value = "职称ID")
    private Integer jobLevelId;

    @Excel(name = "职位",replace = {
            "技术总监_1", "运营总监_2","市场总监_3","研发工程师_4","运维工程师_5"
    },width = 15, isImportField = "true_st")
    @ApiModelProperty(value = "职位ID")
    private Integer posId;

    @Excel(name = "聘用形式", width = 15, isImportField = "true_st")
    @ApiModelProperty(value = "聘用形式")
    private String engageForm;

    @Excel(name = "最高学历", width = 10, isImportField = "true_st")
    @ApiModelProperty(value = "最高学历")
    private String tiptopDegree;

    @Excel(name = "所属专业", width = 30, isImportField = "true_st")
    @ApiModelProperty(value = "所属专业")
    private String specialty;

    @Excel(name = "毕业院校", width = 20, isImportField = "true_st")
    @ApiModelProperty(value = "毕业院校")
    private String school;

    @Excel(name = "入职日期", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd", isImportField = "true_st", width = 20)
    @ApiModelProperty(value = "入职日期")
    private LocalDate beginDate;

    @Excel(name = "在职状态", width = 10, isImportField = "true_st")
    @ApiModelProperty(value = "在职状态")
    private String workState;

    @Excel(name = "工号", width = 15, isImportField = "true_st")
    @ApiModelProperty(value = "工号")
    private String workID;

    @Excel(name = "合同期限", width = 10, suffix = "年",isImportField = "true_st")
    @ApiModelProperty(value = "合同期限")
    private Double contractTerm;

    @Excel(name = "转正日期", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd", isImportField = "true_st", width = 20)
    @ApiModelProperty(value = "转正日期")
    private LocalDate conversionTime;

    @Excel(name = "离职日期", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd", isImportField = "true_st", width = 20)
    @ApiModelProperty(value = "离职日期")
    private LocalDate notWorkDate;

    @Excel(name = "合同起始日期", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd", isImportField = "true_st", width = 20)
    @ApiModelProperty(value = "合同起始日期")
    private LocalDate beginContract;

    @Excel(name = "合同终止日期", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd", isImportField = "true_st", width = 20)
    @ApiModelProperty(value = "合同终止日期")
    private LocalDate endContract;

    @Excel(name = "工龄", width = 10,isImportField = "true_st")
    @ApiModelProperty(value = "工龄")
    private Integer workAge;

    @Excel(name = "工资账套ID", width = 10,isImportField = "true_st")
    @ApiModelProperty(value = "工资账套ID")
    private Integer salaryId;

    @ApiModelProperty(value = "部门对象")
    @TableField(exist = false)
    private Department departments;

    @ApiModelProperty(value = "工资对象")
    @TableField(exist = false)
    private Salary salary;

}
